package done.easy_901_1000;

import static com.study.util.LogUtil.info;

import org.junit.Test;

/**
 * 949. Largest Time for Given Digits 给定数字能组成的最大时间
 * <p>
 * 给定一个由 4 位数字组成的数组，返回可以设置的符合 24 小时制的最大时间。
 * 最小的 24 小时制时间是 00:00，而最大的是 23:59。从 00:00 （午夜）开始算起，过得越久，时间越大。
 * 以长度为 5 的字符串返回答案。如果不能确定有效时间，则返回空字符串。
 * <p>
 * 示例 1：
 * 输入：[1,2,3,4]
 * 输出："23:41"
 * 示例 2：
 * 输入：[5,5,5,5]
 * 输出：""
 * 2019-04-14 4:36 PM
 **/
@SuppressWarnings("all")
public class LargestTimeForGivenDigits {

    public String largestTimeFromDigits(int[] A) {
        // 190414 first
        return null;
    }

    @Test
    public void test() {
        info(largestTimeFromDigits(new int[]{1, 2, 3, 4}));
    }
}































/*
public String largestTimeFromDigits(int[] A) {
    Arrays.sort(A);

    // 能组成的时间是 23:59
    int max = 60 * 23 + 59;

    // 只要这个时间还 >= 0
    while (max >= 0) {

        // max / 60 / 10 = 小时的十位
        // max / 60 % 10 = 小时的个位
        // max % 60 / 10 = 分钟的十位
        // max % 60 % 10 = 分钟的个位
        int[] B = new int[]{max / 60 / 10, max / 60 % 10, max % 60 / 10, max % 60 % 10};

        Arrays.sort(B);

        info(B);

        if (Arrays.equals(A, B)) {
            // 小时是 max / 60 如果不满两位 就是 "0" + max / 60
            String hour = (max / 60) < 10 ? "0" + (max / 60) : max / 60 + "";

            // 分钟是 max % 60 如果不满两位 就是 "0" + max % 60
            String min  = (max % 60) < 10 ? "0" + (max % 60) : max % 60 + "";
            return  hour+":"+min;
        }
        max--;
    }
    return "";
}
*/

